const Base = require("../base.js");
var txyoss = require("./txyoss");
const xlsx = require("xlsx");
const axios = require('axios');
/*
导出excel
jsonData =[
      { 姓名: "张三", 年级: 28, 城市: "广东省深圳市" },
      { 姓名: "李四", 年级: 22, 城市: "广东省广州市" },
      { 姓名: "王五", 年级: 30, 城市: "广东省惠州市" },
    ]
    columnWidths = [
      { wch: 10 }, // 第一列宽度为20字符宽度
      { wch: 10 }, // 第二列宽度为10字符宽度
      { wch: 20 }, // 第三列宽度为20字符宽度
    ]
*/
module.exports = class extends Base {
  async indexAction() {
    let jsonData = [];
    let columnWidths = [];
    try {
      columnWidths = eval(this.post("columnWidths"));
    } catch (e) {}
    try {
      jsonData = eval(this.post("jsonData"));
    } catch (e) {}
    console.log(jsonData);
    console.log(columnWidths);
    console.log("6666666");
    // 创建一个新的工作簿
    const workbook = xlsx.utils.book_new();
    // 将JSON数据转换为工作表
    const worksheet = xlsx.utils.json_to_sheet(jsonData);

    // 将列宽度应用到工作表
    worksheet["!cols"] = columnWidths;

    // 将工作表添加到工作簿中
    xlsx.utils.book_append_sheet(workbook, worksheet, "Sheet1");
    // 将工作簿写入字节数据
    const excelBuffer = xlsx.write(workbook, {
      bookType: "xlsx",
      type: "buffer",
    });
    let xlsxseerr = await txyoss.upbuff(excelBuffer, "hlwxqm", ".xlsx");

    this.success(xlsxseerr);
  }

};